import pagesJson from "@/pages.json";

/**
 * 获取登录关联的页面
 * @param login_type login-需要登录页面 all-所有页面 white-白名单页面
 * @returns 
 */
export function getloginPages(login_type = 'login') {
    const pages = [];
    // 获取主包中的页面
    pagesJson.pages.forEach((item) => {
        let isPush = false;
        if(login_type == 'login' && item.loginVerify) {
            isPush = true;
        } else if(login_type == 'all') {
            isPush = true;
        } else if(login_type == 'white' && (!item.loginVerify)) {
            isPush = true;
        }
        if(isPush)pages.push(`/${item.path}`);
    });
    // 获取分包中的页面
    if (pagesJson.subPackages) {
        pagesJson.subPackages.forEach((subPackages) => {
            subPackages.pages.forEach((item) => {
                let isPush = false;
                if(login_type == 'login' && item.loginVerify) {
                    isPush = true;
                } else if(login_type == 'all') {
                    isPush = true;
                } else if(login_type == 'white' && (!item.loginVerify)) {
                    isPush = true;
                }
                if(isPush) pages.push(`/${subPackages.root}/${item.path}`);

            });
        });
    }
    return pages;
}

/**
 * 获取插件关联的页面
 * @param key 插件key
 * @returns 
 */
export function getAddonPages(key = '') {
    const pages = [];
    // 获取主包中的页面
    pagesJson.pages.forEach((item) => {
        let isPush = false;
        if(item.hasOwnProperty('addon')) {
            if(key) {
                if(item['addon'] == key) isPush = true;
            } else {
                if(item['addon']) isPush = true;
            }
            if(isPush)pages.push({key: item['addon'], path: `/${item.path}`});
        }
    });
    // 获取分包中的页面
    if (pagesJson.subPackages) {
        pagesJson.subPackages.forEach((subPackages) => {
            subPackages.pages.forEach((item) => {
                let isPush = false;
                if(item.hasOwnProperty('addon')) {
                    if(key) {
                        if(item['addon'] == key) isPush = true;
                    } else {
                        if(item['addon']) isPush = true;
                    }
                    if(isPush)pages.push({key: item['addon'], path: `/${item.path}`});
                }

            });
        });
    }
    return pages;
}

/**
 * 根据路径获取配置
 * @param path 路径
 * @returns 
 */
export function getPathAddonConfig(path) {
    let config = null;
    // 获取主包中的页面
    pagesJson.pages.forEach((item) => {
        if(item.hasOwnProperty('addon') && item['path'] == path) {
            config = item;
        }
    });
    // 获取分包中的页面
    if (pagesJson.subPackages && !config) {
        pagesJson.subPackages.forEach((subPackages) => {
            subPackages.pages.forEach((item) => {
                if(item.hasOwnProperty('addon') && item['path'] == path) {
                    config = item;
                }
            });
        });
    }
    return config;
}

/**
 * 获取tabbar页面
 */
export function getTabbarPages() {
    return pagesJson.tabBar.list.map((item) => {
        return `/${item.pagePath}`;
    });
}

/**
 * 获取首页
 */
export function getHomePage() {
    return "/" + pagesJson.pages[0].path;
}

/**
 * 获取当前页面
 */
export function getCurrentPage() {
    const currentPages = getCurrentPages();
    return currentPages[currentPages.length - 1];
}